rubyist.appでiOS操作を自動化しよう
rubyist.appをご存知でしょうか。
iOS上でmrubyのコーディングと実行ができるアプリで、公開されたばかりの11/'20時点ではBeta版をTestFlightから使用することが可能です。
Hello World
なにはともあれ"Hello World"ですね。
rubyist.appにはいくつかサンプルコードがあり、そのうちの"Hello World"を実行してみます。
これを実行すると↓のように、アウトプットが表示されます。
またrubyist.app内で、rubyist.appのcoreライブラリとmrubyの標準ライブラリのドキュメントを参照できるといういう、なかなかの手厚さです。
なるほど、なるほど。
iOS操作を自動化する
では、ちょっとだけ自動化を味わってみます。
やりたいこと
- iPhoneの残バッテリーを取得して、SlackのAPIを叩いて投稿する
(本当はクリップボードの内容を取得をしたかったのですが、ショートカット経由だと上手くできませんでした。iPhoneの世代にもよるかもしれません)
やるだけであれば、すでにiOSのショートカットに備わっている機能だけで完結します(それはそれで便利)が、今回はショートカット+rubyist.appで実現してみます。
ショートカット
SlackのAPIを叩くためのトークンを、rubyist.appのScriptに渡してやります。
Script
前述のcoreライブラリを使用して、デバイス情報の取得と、Httpリクエストをすることができます。
api = 'https://slack.com/api/chat.postMessage'
token = ARGV[0]
channel = 'rubyist'
text = "#{Device.battery_level}%"
http = HttpRequest.new
res = http.post("#{api}?channel=#{channel}&text=#{text}&token=#{token}")
json = JSON.parse(res.body)
if json['ok']
puts 'success!!!'
puts json['message']['text']
else
puts 'failed...'
puts json['error']
end
実行
ショートカットを実行します。
Slackも見てみましょう。
👏🏿 👏🏼 👏🏽 👏 👏🏾
iOSはショートカットそのものが非常にパワフルなので、トリガーや取得できるデータとrubyist.appの組み合わせ次第で、様々なことができそうですね。
提案やフィードバックは、rubyist.appのtwitterやmailで募集中とのことです。
今後は使用可能なライブラリも増えていくと思われます。
アイディア次第でいろいろできると思うとワクワクしますね。
その名の通り、Rubyistのためのアプリ。
興味のある方は、ぜひ一度試してみてはいかがでしょうか。
Discussion